Уильям Кроуэлл, заместитель директора Агентства национальной безопасности, 20 марта 1997г.
Один из наиболее важных параметров при использовании современных средств криптографии (под этим я, разумеется, буду подразумевать именно PGP) — это размер ключа. Как в случае с кинофильмом «Годзилла» (и как не в случае с утешительной для многих мужчин фразы, относящейся к размеру его мистера Грандиозо) — размер имеет значение. Причём зависимость совершенно прямая: значение растет вместе с размером. Потому что, как мы уже сказали, алгоритм PGP не вскрывается кроме как перебором (подбором) ключей. Этот перебор называется «взять грубой силой», хотя вся грубость заключается в тупом вводе и переборе паролей. А это означает, что чем больше ключ, тем сложнее его подобрать.
Размер ключа задается в битах. (Бит — наименьшая единица информации на компьютере. Восемь бит составляют один байт, то есть, грубо говоря, один символ или цифру) Чем больше ключ, тем дольше его вскрывать, но, соответственно, больше времени уйдет на кодирование текста. Минимальный размер ключа — 768 бит. Можно, конечно, использовать и меньшие размеры, но такие ключи легко вскрываются за вполне обозримый срок даже при использовании обычного компьютера.
Более или менее стандартные современные размеры ключей — 1024 и 2048 бит (то есть один-два килобита). PGP допускает использование четырёхкилобитного ключа, и такой размерчик быстро не оприходовать просто по определению.
Впрочем, нужно чётко понимать, что даже четырёхкилобитный ключ может быть вскрыт — при использовании соответствующих мощностей и при наличии достаточного времени. Но это должны быть очень серьёзные мощности, да и времени на это уйдет — я вас умоляю...
ЭЛЕКТРОННАЯ ПОДПИСЬКак я уже говорил, РGР-шифрование предоставляет ещё одну очень интересную возможность под названием электронная подпись. Она выполняет сразу две функции:
1. Совершенно однозначно идентифицирует отправителя письма. Точнее, сигнализирует, если кто-то пытается выдать себя за вас.
2. Гарантирует, что в первоначальный текст письма не внесено никаких изменений.
«Но как она это делает?!!» — можешь спросить ты. Это же прям шайтан какой-то получается, да? Шайтан, однозначно! Но имеющий под собой вполне четкое математическое обоснование. Впрочем, я не буду грузить тебя терминами вроде «хэш-функции «и тому подобных. Просто скажу, что всё дело в волшебных пузырьках — то есть в публичном ключе.
Физически это выглядит следующим образом... Hog каждым зашифрованным письмом PGP ставит так называемый «отпечаток пальца» (PGP fingerprint). Это некий код, то есть набор символов. При получении письма абонент сравнивает этот отпечаток с текстом — таким образом выясняется, были ли внесены в текст какие-то изменения — а затем отпечаток сверяется с твоим публичным ключом. Если всё совпадает, значит, письмо точно написано тобой, причём в него не было внесено никаких изменений.
Подделать этот «отпечаток пальца» практически невозможно. Только если украсть у тебя секретный ключ.
ПСИХОЛОГИЧЕСКИЙ ПРАКТИКУМ«Карл, заканчивай мне голову морочить — ключи, размеры, подписи-шмотписи, циммерманы-шмимерманы! — можешь заявить ты. — Лучше расскажи, как всей этой хренотой пользоваться».
О'кей, босс, не волнуйся, всё будет. Но мне нужно было, чтобы ты всё-таки уяснил основные понятия РGР-шифрования, потому что без этого мы не смогли бы перейти к водным процедурам. Но сейчас перейдем. Итак, рассказываю о том, как это всё используется в нашей реальной суровой жизни...
Прежде всего, нужна сама программа PGP или встроенный модуль PGP в почтовом клиенте. Программу можно взять где угодно: она распространяется бесплатно, поэтому доступна как на сотнях тысяч сайтов в Интернете, так и на дисках, продающихся в любой подворотне. Хотя я рекомендую купить лицензионную версию — нужно же как-то отблагодарить Фила за его самоотверженность.
Далее твои действия (именно твои, потому что установку личного PGP крайне нежелательно доверять даже админу)...
1. Устанавливаешь PGP на свой компьютер
2. Создаешь пару ключей — открытый и закрытый
При этом PGP тебе будет задавать всякие пикантные вопросы по поводу размера, а также потребует произвести всякие странные вещи, которые кроме как танцами с бубном не назовешь. Ho q объясню, что это означает. С размером мы уже определились — выбирай or килобитного до двухкилобитного варианта, в зависимости от желаемой стойкости шифра. В принципе, килобитного ключа будет достаточно почти для всех областей применения. Но если ты считаешь свою информацию супермегасекретной (надеюсь, что ты не международный террорист, потому что если моим надеждам не суждено сбыться, я требую, чтобы ты немедленно закрыл этот учебник и тут же его сжёr), тогда выбирай максимальный размер ключа — в четыре килобита. Но имей в виду, что это очень сильно замедлит скорость шифрования (да и расшифровки тоже). Далее система сообщит, что ей нужно получить всякие случайные символы — чтобы создать специальный временной ключ (я чуть ниже расскажу о том, зачем он нужен). Для этого тебе нужно будет или повозить мышкой туда-сюда, или пошлепать по совершенно произвольным клавишам.
3. Распространи свой открытый ключ среди всех своих корреспондентов Напоминаю, что открытый ключ на то и открытый, что его можно раздавать всем желающим.
4. Заставь корреспондентов сверить подлинность открытого ключа
Ну, то есть убедиться, что это именно ты прислал данный ключ. (Для удобства подлинность каждого ключа можно сверить по «отпечатку пальца» - уникальному идентификационному коду) Таким же образом сверь открытые ключи, полученные тобой от корреспондентов.
И всё, теперь программой можно пользоваться. Если у тебя почтовый клиент поддерживает встроенный PGP (например, The Bat! умеет это делать, да и Ann Outlook 2003, насколько я помню, существуют соответствующие плагины), то процедура шифрования/расшифровывания производится практически автоматически. Ты просто пишешь письмо (или прикладываешь текстовый файл к письму), нажимаешь кнопку «Зашифровать», далее письмо зашифровывается и его можно отправлять.
Если интересно, могу чуть подробнее рассказать, что именно делает, например, The Bat!, когда ему поступает команда зашифровать письмо...
1. Сначала сообщение сжимается (архивируется). Это делается в двух целях. Вопервых, сжатое сообщение занимает меньше места, а следовательно, быстрее передаётся. Во-вторых, сообщение, которое перед зашифровкой сжимается, намного труднее дешифровать посторонним лицам.
2. Далее PGP создает уникальный временный ключ, представляющий собой некое число, полученное в результате совершенно случайных величин — координат движения вашей мышки, скорости нажатия на клавиатуру и так далее, — чтобы его невозможно было вычислить и подобрать.
3. Затем с помощью этого временного ключа (его также называют «сессионным» ) производится зашифровывание самого сообщения.
4. После этого сессионный ключ также шифруется с помощью открытого ключа, который вы получили от вашего абонента.
5. В конце концов зашифрованное сообщение вместе с зашифрованным ключом отправляется абоненту.
Расшифровка письма производится в обратной последовательности. Сначала PGP получателя с помощью его закрытого ключа дешифрует сессионный ключ, после чего с помощью этого ключа расшифровывается уже всё сообщение. Таким образом, даже если некто перехватит твоё сообщение вместе с ключом, то он не сможет его расшифровать обычными средствами. Со стороны это всё выглядит достаточно сложным, но не пугайся — даже при использовании отдельной программы PGP эти процессы автоматизируются. А уж когда PGP встроен в почтовый клиент, всё происходит полностью автоматически. От тебя требуется только нажать кнопку «Зашифровать» или «Расшифровать».
Как сохранить секретный ключ? Да так же, как и любой другой секретный файл: держать его в папке, недоступной остальным пользователям, либо же вообще носить, например, на flash-drive. Также напоминаю, что секретный ключ ещё и защищён паролем, то есть, даже если его вдруг кто-то свистнет, воспользоваться ключом у злоумышленника всё равно не получится (если пароль отвечает требованиям, сформулированным в одной из глав этой книги).
Ну и ещё тебе нужно знать о том, что у секретного ключа можно задать срок действия — так же, как, например, задаётся срок действия пароля пользователя в локальной сети. По истечении срока действия PGP потребует от тебя создать новый секретный ключ. Старый будет годиться для расшифровки, а вот новое письмо им зашифровать уже будет нельзя.
ОФИСНАЯ ЭЛЕКТРОННАЯ ПОЧТА
В предыдущих разделах мы рассмотрели различные технологии работы с частной электронной почтой, а теперь давай посмотрим, как это всё должно быть организовано в масштабах офиса.